assume cs:code, ss:stack, ds:data

data segment
    db "Hello world"
    db 01000010B
    db 01110001B
    db 01001010B
data ends

stack segment stack
    db 128 dup(0)
stack ends

code segment
start:
    ; 初始化
    mov ax, data
    mov ds, ax
    mov ax, stack
    mov ss, ax
    mov sp, 128
    mov ax, 0B800H
    mov es, ax
    mov si, 0
    mov di, 160*10+2*30

    mov cx, 3
    mov bx, 0
list:   ; 列循环
    push cx
    push si
    mov cx, 11
row:    ; 行循环
    mov al, ds:[si]
    mov ah, ds:[11+bx]
    mov es:[di], ax
    inc si
    add di, 2
    loop row    ; 行循环
    inc bx
    add di, 160 - 11*2
    pop si
    pop cx
    loop list   ;列循环

    mov ax, 4c00H
    int 21H
code ends

end start